// 抽象类 不能被实例化,只能被继承

export {};
interface Eat {
  eat: Function;
  // eat(food: string): void;
  // run(distance: string): void;
}

interface Run {
  run: Function;
}
// 动物类
abstract class Animal implements Eat, Run {
  eat(food: string): void {
    console.log(`呼噜呼噜的吃:${food}`);
  }
  abstract run(distance: string): void; // 不需要方法体 ，子类必须实现，不实现除非继承它的类也是抽象类   java思想
}

class Dog extends Animal {
  // 重写父类中的方法
  run(distance: string) {
    console.log(`爬行:${distance}`);
  }
}
